import { Observable } from 'rxjs';
import { EzForm } from '../ez-form';
import { EzFormControlConfiguration } from '../ez-form-control';
import { EzFormGroup } from '../ez-form-group';
import { EzRadio } from './ez-radio';

/**
 * 单选钮可选项
 */
export interface EzRadioOption {
  /**
   * 展示文字
   */
  label: string;
  /**
   * 值
   */
  value: any;

  /**
   * 是否禁用
   */
  disabled?: boolean;
}

export declare type EzRadioOptions = EzRadioOption[];

/**
 * 单选钮配置项
 */
export interface EzRadioConfiguration extends EzFormControlConfiguration<any, EzRadio> {
  type: 'radio';
  /**
   * 可选择项配置
   */
  options: EzRadioOptions | ((control: EzRadio, group: EzFormGroup, form: EzForm) => Observable<EzRadioOptions>);
}
